package facade;

import java.io.File;
import java.util.List;

import util.RelatorioPrinter;

import bl.MyMoneyManager;
import exceptions.MyMoneyException;

/**
 * A simple test facade
 * @author Magno Queioz
 * @author Francisco Neto
 */
public class MyMoneyFacade {

	private MyMoneyManager manager;
	
	public MyMoneyFacade() throws MyMoneyException{
		manager = new MyMoneyManager();
	}
	
    public void zeraSistema() {
    	manager.zeraSistema();
    }
   
    public void login(String email, String senha) throws Exception {
    	manager.login(email, senha);
    }
    
    public void cadastraUsuario(String nome, String senha,String email ) throws Exception {
    	manager.cadastraUsuario(nome, senha, email);
    }
    
    public void cadastraGasto(String id, double valor, String data, String categoria, String formaPagamento) throws Exception{
    	manager.cadastraGasto(id, valor, data, categoria, formaPagamento);
    }
    
    public void editaGasto(String id, double valor, String data, String categoria, String formaPagamento) throws Exception{
    	manager.editaGasto(id, valor, data, categoria, formaPagamento);
    }
    
    public File consultaGasto(String dataInicial, String dataFinal) throws Exception{
    	return manager.consultaGasto(dataInicial, dataFinal);
    }

    public File consultaConta(String dataInicial, String dataFinal) throws Exception{
    	return manager.consultaConta(dataInicial, dataFinal);
    }

    public File consultaEntrada(String dataInicial, String dataFinal) throws Exception{    	
    	return manager.consultaEntrada(dataInicial, dataFinal);
    }
    
    public boolean ehUsuarioCadastrado(String senha) {
    	return manager.ehUsuarioCadastrado(senha);
    }
    
    public String getNomeDoUsuarioLogado(){
    	return manager.getNomeDoUsuarioLogado();
    }
    
    public String getEmailDoUsuarioLogado(){
    	return manager.getEmailDoUsuarioLogado();
    }
    
    public void logout() throws MyMoneyException{
    	manager.logout();
    }
    
    public void cadastraEntrada(String id, double valor, String data) throws MyMoneyException{
    	manager.cadastraEntrada(id, valor, data);
    }
    
    public List<String> getGastos(){   	
    	List<String> s = manager.getGastos();
    	System.out.println(s);
    	return s;
    }
    
    public String leBoleto(String nomeArquivo) throws MyMoneyException{
    	return manager.leBoleto(nomeArquivo);
    }
    
    public void cadastraConta(String id, double valor, String dataPagamento, String descricaoConta) throws MyMoneyException{
    	manager.cadastraConta(id, valor, dataPagamento, descricaoConta);
    }
    
    public File geraRelatorio() throws MyMoneyException{
    	return manager.geraRelatorio();
    }
    
    public File geraRelatorioCompleto() throws MyMoneyException{
    	return manager.geraRelatorio();
    }

}

/**
 * TO DO LIST:
 * Inserir US2, login de usuarios no documento descritivo de USs
 * 
 */